A disk drive includes a magnetic storage medium that is rotated by a spindle motor. Data is stored on the magnetic storage medium in concentric tracks, where each track includes multiple sectors. The sectors include data sectors and servo sectors. The servo sectors store servo information, such as a preamble, synchronization (synch) mark, gray code, etc. A servo controller is used to determine a location of a read/write head relative to the tracks and/or sectors based on the servo information.
A radial incoherence detector can be used to detect radial incoherence during reading of servo sectors. Radial incoherence refers to an offset in a circumferential direction between two radially adjacent servo sectors, which causes a timing offset between servo information read from the radially adjacent servo sectors. During writing of servo data, start and end locations of radially adjacent servo sectors can be misaligned. When the head is performing a seek operation including passing the head over adjacent sectors in a radial direction, this misalignment in the servo sectors is detected by the radial incoherence detector. Since each servo sector essentially includes the same servo information, radial incoherence would be 0 if the radially adjacent servo sectors were circumferentially aligned. In a typical magnetic recording medium however, this misalignment between radial adjacent servo sectors can consistently change in a random pattern.
Traditional radial incoherence detectors typically estimate an amount of radial incoherence based on an output of a filter and/or a past decision of a Viterbi detector. The estimated radial incoherence is then compensated for in future decisions of the Viterbi detector. There is a delay from when the radial incoherence is estimated to when the compensation occurs. This delay causes compensation values determined for first received servo information to be later used for second (or later received servo information). The later received servo information may have a different radial incoherence than the first received servo information. As a result, the radial incoherence compensation is inaccurate.